# backend/config/upload_config.py
"""
文件上传相关配置
"""

import os

class UploadConfig:
    """文件上传配置类"""
    
    # 允许的文件扩展名
    ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif', 'webp'}
    
    # 文件大小限制（字节）
    MIN_FILE_SIZE = 100  # 最小文件大小，过滤掉损坏的图片
    MAX_FILE_SIZE = 10 * 1024 * 1024  # 最大文件大小 10MB
    
    # 微信开发工具模式下的特殊处理
    WECHAT_DEV_TOOL_MIN_SIZE = 70  # 微信开发工具常见的损坏文件大小
    
    # 上传目录配置
    UPLOAD_FOLDER = 'temp_uploads'
    
    @staticmethod
    def get_min_file_size(is_dev_mode=False):
        """
        根据环境获取最小文件大小限制
        
        Args:
            is_dev_mode (bool): 是否为开发模式
            
        Returns:
            int: 最小文件大小（字节）
        """
        if is_dev_mode:
            return UploadConfig.WECHAT_DEV_TOOL_MIN_SIZE
        return UploadConfig.MIN_FILE_SIZE
    
    @staticmethod
    def is_allowed_file(filename):
        """
        检查文件扩展名是否被允许
        
        Args:
            filename (str): 文件名
            
        Returns:
            bool: 是否允许上传
        """
        return ('.' in filename and 
                filename.rsplit('.', 1)[1].lower() in UploadConfig.ALLOWED_EXTENSIONS)
